Read Buf

Read Buf

Bpftop:Netflix 推出的 eBPF 程序性能监控和优化工具

Bpftop 是一款 Netflix 推出的用于简化 eBPF 程序性能优化和监控的命令行工具。随着 Netflix 越来越多地采用 eBPF,需要对这些应用程序进行严格的管理。

Image

Bpftop 介绍

bpftop 提供了一个可以实时动态查看 eBPF 程序运行情况的界面。它可以显示每个程序的平均执行时间、每秒事件数和估算的 CPU 占用率。这个工具只在其运行时启用性能统计功能,以尽量减少对系统的开销。

Animated Image

bpftop 通过实现高效的基准测试、代码优化和即时反馈循环,简化了 eBPF 程序的性能优化。如果没有 bpftop,优化过程将需要手动计算,增加了不必要的复杂性。有了 bpftop,用户可以快速建立基线,进行改进,并验证优化效果,从而简化了整个流程。

这款工具的一个亮点是它能够以时间序列图的形式展示统计数据。这种展示方式可以揭示其他方法可能错过的模式和趋势。

工作原理

bpftop 使用 BPF_ENABLE_STATS 系统调用命令来启用全局 eBPF 运行时统计数据收集,该功能默认是禁用的以减少性能开销。它每秒收集一次这些统计数据,计算每个 eBPF 程序在该样本周期内的平均执行时间、每秒事件数和估算的 CPU 利用率。这些信息可以以类似 top 的表格格式或者在 10 秒移动窗口的时间序列图中显示出来。一旦 bpftop 终止,它会关闭统计数据收集功能。该工具用 Rust 编写,利用了 libbpf-rsratatui 的 crates。